﻿using BusinessLogicLayer;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace PresentationLayer
{
    public partial class CapNhatNguoiDungForm : Form
    {
        public delegate void LoadDS(NguoiDung nd);
        private LoadDS load;
        public NguoiDung nd;
        public CapNhatNguoiDungForm()
        {
            InitializeComponent();
        }
        public CapNhatNguoiDungForm(LoadDS ld)
        {
            InitializeComponent();
            nd = new NguoiDung();
            load = ld;
        }
        public CapNhatNguoiDungForm(NguoiDung ngDung, LoadDS ld)
        {
            InitializeComponent();
            nd = ngDung;
            load = ld;
        }
        private void btnLuu_Click(object sender, EventArgs e)
        {
            DialogResult dlg = MessageBox.Show("Bạn có muốn cập nhật thông tin người dùng!!!", "Xác nhận", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
            if (dlg == DialogResult.Yes)
            {
                NguoiDung nd = new NguoiDung();
                nd.HoTen = txtHoTen.Text;
                nd.TaiKhoan = txtTaiKhoan.Text;
                nd.MatKhau = txtMatKhau.Text;
                nd.GioiTinh = chkGioiTinh.Checked;
                nd.NgaySinh = dtpNgaySinh.Value;
                nd.MaNguoiDung = this.nd.MaNguoiDung;
                var valid = new NguoiDungManager().KiemTraHopLe(nd);
                if (valid.Valid)
                {
                    if (nd.MaNguoiDung > 0)
                    {
                        var re = new NguoiDungManager().Sua(nd);
                        if (re.Success)
                        {
                            MessageBox.Show("Cập nhật người dùng thành công", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            load(nd);
                        }
                        else MessageBox.Show(re.ToString(), "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                    else
                    {
                        var ktTrung = new NguoiDungManager().KiemTraTrungTaiKhoan(nd.TaiKhoan);
                        if (ktTrung.Valid)
                        {
                            var re = new NguoiDungManager().Them(nd);
                            if (re.Success)
                            {
                                MessageBox.Show("Thêm người dùng thành công với mã người dùng là: " + nd.MaNguoiDung, "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                load(nd);
                                this.txtTaiKhoan.ReadOnly = true;
                            }
                            else MessageBox.Show(re.ToString(), "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                        else MessageBox.Show(ktTrung.ToString(), "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
                else MessageBox.Show("Chi tiết: \n" + valid.ToString(), "Không hợp lệ", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void btnHuy_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void CapNhatNguoiDungForm_Load(object sender, EventArgs e)
        {
            if (nd.MaNguoiDung > 0)
            {
                this.txtHoTen.Text = nd.HoTen;
                this.chkGioiTinh.Checked = nd.GioiTinh;
                this.dtpNgaySinh.Value = nd.NgaySinh;
                this.txtTaiKhoan.Text = nd.TaiKhoan;
                this.txtMatKhau.Text = nd.MatKhau;
                this.txtTaiKhoan.ReadOnly = true;
            }
        }
    }
}
